home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 51 / Amiga Format CD51 (2000-03-10)(Future Publishing)(GB)[!][issue 2000-04].iso / -in_the_mag- / banging_the_metal / qdos / qdos4amiga2 / romsrc / sys / procs10_asm < prev    next >
Text File  |  2000-01-03  |  35KB  |  1,747 lines

  1. */beginfile PROCS10_asm
  2. ; --------------------------------------------------------------
  3. ; PROCS10_asm - BASIC procedure and function definitions
  4. ;         - last modified 06/09/95
  5. ; QDOS-Amiga sources by Rainer Kowallik
  6. ;  ...latest changes by Mark J Swift
  7. ; --------------------------------------------------------------
  8. BAS_DLINe:
  9.     CMPA.L    A5,A3
  10.     BGE    L0750E
  11.     ST    D7
  12.     JSR    L07E30(PC)    ;*/undomodify BSR L07E30
  13.     BEQ.S    L07476
  14.     ST    $00B8(A6)
  15. L07474    RTS
  16. L07476    BSR.S    L0747A
  17.     BRA.S    L07492
  18. L0747A    MOVEQ    #$02,D1
  19.     JMP    L065E8(PC)    ;*/undomodify BRA L065E8
  20. BAS_LIST:
  21.     BSR.S    L0747A
  22.     BLT.S    L07474
  23. L07484    ST    BV_PRINT(A6)    ;Print from prtok
  24.                 ;($ff) or leave in buffer
  25.     CLR.W    $BA(A6)
  26.     CMPA.L    A5,A3
  27.     BGE    L07512
  28. L07492    MOVE.L    A5,-(A7)
  29. L07494    CMPA.L    (A7),A3
  30.     BGE.S    L074DE
  31.     BSR.S    L07452
  32.     BNE.S    L074A0
  33.     MOVEQ    #0,D4
  34.     BRA.S    L074A6
  35. L074A0    BSR.S    L074F0
  36.     BNE.S    L074DA
  37.     MOVE.W    D1,D4
  38. L074A6    SUBQ.B    #5,D5
  39.     BEQ.S    L074B6
  40.     ADDQ.B    #5,D5
  41.     MOVE.W    D4,D6
  42.     BNE.S    L074CE
  43.     TST.B    D7
  44.     BNE.S    L07494
  45.     BRA.S    L074BE
  46. L074B6    CMPA.L    (A7),A3
  47.     BGE.S    L074BE
  48.     BSR.S    L07452
  49.     BNE.S    L074C4
  50. L074BE    MOVE.W    #$7FFF,D6
  51.     BRA.S    L074CE
  52. L074C4    BSR.S    L074F0
  53.     BNE.S    L074DA
  54.     MOVE.W    D1,D6
  55.     CMP.W    D4,D6
  56.     BLT.S    L074DA
  57. L074CE    BSR.S    TKN_LIST
  58.     CMPI.B    #$01,D5
  59.     BEQ.S    L07494
  60.     TST.B    D5
  61.     BEQ.S    L074DE
  62. L074DA    MOVEQ    #-$0F,D0
  63.     BRA.S    L074EC
  64. L074DE    TST.B    D7
  65.     BEQ.S    L074EA
  66.     MOVEQ    #0,D2
  67.     MOVEQ    #0,D5
  68.     JSR    L08FE6(PC)    ;*/undomodify BSR L08FE6
  69. L074EA    MOVEQ    #0,D0
  70. L074EC    MOVEA.L    (A7)+,A5
  71.     RTS
  72. L074F0    MOVEA.L    A3,A5
  73.     JSR    L05EC8(PC)    ;*/undomodify BSR L05EC8
  74.     BNE.S    L07510
  75.     MOVEQ    #$03,D0
  76.     JSR    L05996(PC)    ;*/undomodify BSR L05996
  77.     BNE.S    L07510
  78.     ADDQ.L    #2,BV_RIP(A6)    ;arith stack
  79.     MOVE.W    0(A6,A1.L),D1
  80.     BGT.S    L0750E
  81.     MOVEQ    #-15,D0        ;Bad parameter
  82.     RTS
  83. L0750E    MOVEQ    #0,D0
  84. L07510    RTS
  85. L07512    MOVEQ    #0,D4
  86.     MOVE.W    #$7FFF,D6
  87. TKN_LIST ;Convert precompiled BASIC to ASCII text
  88.     MOVEA.L    BV_PFBAS(A6),A4    ;program file
  89. TKN_LST2 CLR.L    BV_LINUM(A6)    ;current line #
  90.     TST.W    D4
  91.     BEQ.S    L07530
  92.     MOVE.L    A0,-(A7)
  93.     JSR    L09FBE(PC)    ;*/undomodify BSR L09FBE
  94.     MOVEA.L    (A7)+,A0
  95.     MOVE.W    D2,BV_LINUM(A6)    ;current line #
  96. L07530    TST.B    D7
  97.     BNE.S    L0753C
  98. RLOC16    movea.l    #(TB_LIST-ORGN),a2 ;*/modify LEA TB_LIST(PC),A2
  99.     JMP    L090B6(PC)    ;*/undomodify BRA L090B6
  100. L0753C    CMP.W    4(A6,A4.L),D6
  101.     BLT.S    L0750E
  102.     MOVE.L    A4,-(A7)
  103.     MOVE.W    BV_LENGTH(A6),-(A7) ;current length
  104. L07548    CMPA.L    BV_PFP(A6),A4    ;program running ptr
  105.     BGE.S    L07588
  106.     MOVE.W    0(A6,A4.L),D1
  107.     ADDQ.W    #2,A4
  108.     ADD.W    D1,BV_LENGTH(A6)    ;current length
  109.     ADDA.W    BV_LENGTH(A6),A4    ;current length
  110.     CMP.W    $04(A6,A4.L),D6
  111.     BGE.S    L07548
  112.     MOVE.W    0(A6,A4.L),D1
  113.     ADD.W    BV_LENGTH(A6),D1    ;current length
  114.     SUB.W    (A7)+,D1
  115.     MOVE.W    D1,0(A6,A4.L)
  116.     MOVEA.L    (A7)+,A2
  117. L07572    MOVE.W    0(A6,A4.L),0(A6,A2.L)
  118.     ADDQ.W    #2,A4
  119.     ADDQ.W    #2,A2
  120.     CMPA.L    BV_PFP(A6),A4    ;program running ptr
  121.     BLT.S    L07572
  122.     MOVE.L    A2,BV_PFP(A6)    ;program running ptr
  123. L07586    BRA.S    L0750E
  124. L07588    ADDQ.W    #2,A7
  125.     MOVE.L    (A7)+,BV_PFP(A6)    ;program running ptr
  126.     BRA.S    L07586
  127. ; --------------------------------------------------------------
  128. ;*/beginoverlay
  129.  
  130. ; fix for MRUN, LOAD and LRUN. If command channel is not #0,
  131. ; do a close before opening to a different input channel.
  132.  
  133. L07E20fix:
  134.     move.l    BV_COMCH(a6),d0    ;BASICs Command channel
  135.     beq.s    L07E20o
  136.  
  137.     move.l    d0,a0
  138.     moveq    #2,d0        ;IO.CLOSE close channel
  139.     trap    #2
  140.  
  141.     clr.l    BV_COMCH(a6)    ;Set Command channel to #0
  142.  
  143. L07E20o:
  144.     moveq    #$01,d4
  145.     jsr    L069C4(pc)
  146.     bne.s    L07E2Eo
  147.     move.l    a0,BV_COMCH(a6)    ;Command channel
  148.     moveq    #0,d0
  149.  
  150. L07E2Eo:
  151.     rts
  152.  
  153. ;*/removecode    BAS_MODE:
  154. ;*/removecode        JSR    GET_INT2(PC)
  155. ;*/removecode        BNE.S    L075AC
  156. ;*/removecode        ADDQ.L    #2,BV_RIP(A6)
  157. ;*/removecode        MOVE.W    #$0108,D1
  158. ;*/removecode        AND.W D1,0(A6,A1.L)
  159. ;*/removecode        BNE.S    L075A6
  160. ;*/removecode        MOVEQ    #0,D1
  161. ;*/removecode    L075A6:
  162. ;*/removecode        MOVEQ    #-1,D2
  163. ;*/removecode        MOVEQ    #$10,D0
  164. ;*/removecode        TRAP    #1
  165. ;*/removecode    L075AC:
  166. ;*/removecode        RTS
  167.  
  168. ;*/removecode    L075AE:
  169. ;*/removecode    BAS_NET:
  170. ;*/removecode        JSR    GET_INT2(PC)
  171. ;*/removecode        BNE.S    L075C4
  172. ;*/removecode        ADDQ.L    #2,BV_RIP(A6)
  173. ;*/removecode        MOVE.B    1(A6,A1.L),D1
  174. ;*/removecode        BLE.S    L075C6
  175. ;*/removecode        MOVE.B    D1,$28037
  176. ;*/removecode    L075C4    RTS
  177. ;*/removecode    L075C6    MOVEQ    #-15,D0
  178. ;*/removecode        RTS
  179.  
  180. NOP075CA:
  181.     DCB.w ($75CA-(NOP075CA-ORGN))/2,$4E71
  182.  
  183. ;*/endoverlay
  184. ; --------------------------------------------------------------
  185. BAS_INK:
  186.     MOVEQ    #$29,D4
  187.     BRA.S    DO_BAS_Col
  188. BAS_STRIp:
  189.     MOVEQ    #$28,D4
  190.     BRA.S    DO_BAS_Col
  191. BAS_PAPEr:
  192.     MOVEQ    #$27,D4
  193. DO_BAS_Col:
  194.     JSR    L08038(PC)    ;*/undomodify BSR L08038
  195.     BNE.S    L075EE
  196.     BSR    L07FD4
  197.     BNE.S    L075EE
  198.     CMPI.B    #$27,D4
  199.     BNE.S    L075EA
  200.     BSR.S    L075EA
  201.     MOVEQ    #$28,D4
  202. L075EA    JMP    L07FC4(PC)    ;*/undomodify BRA L07FC4
  203. L075EE    RTS
  204. BAS_CLS:
  205.     MOVEQ    #$20,D4
  206.     BRA.S    L075FA
  207. BAS_PAN:
  208.     MOVEQ    #$1B,D4
  209.     BRA.S    L075FA
  210. BAS_SCROll:
  211.     MOVEQ    #$18,D4
  212. L075FA    JSR    L08038(PC)    ;*/undomodify BSR L08038
  213.     BNE.S    L07642
  214.     MOVE.W    0(A6,A1.L),D1
  215.     CMPI.B    #$20,D4
  216.     BEQ.S    L0760E
  217.     SUBQ.L    #2,A1
  218.     SUBQ.L    #1,D3
  219. L0760E    SUBQ.W    #1,D3
  220.     BHI.S    L07640
  221.     BLT.S    L0762C
  222.     MOVE.W    D4,D3
  223.     SUBI.W    #$0017,D3
  224.     LSR.W    #2,D3
  225.     LEA    L07644(PC),A2
  226.     BTST    D1,0(A2,D3.W)
  227.     BEQ.S    L07640
  228.     ADD.L    D1,D4
  229.     MOVE.W    0(A6,A1.L),D1
  230. L0762C    JSR    L090A2(PC)    ;*/undomodify BSR L090A2
  231.     BNE.S    L0763C
  232.     MOVE.L    BV_LNBAS(A6),$0044(A6) ;line # table
  233.     CLR.W    BV_LSBAS(A6)    ;Bottom line in window
  234. L0763C    JMP    L07FC4(PC)    ;*/undomodify BRA L07FC4
  235. L07640    MOVEQ    #-$0F,D0
  236. L07642    RTS
  237. L07644    BTST    D3,(A1)+
  238.     MOVE.B    D0,-(A7)
  239. BAS_PAUSe:
  240.     JSR    CA_GTINT(PC)    ;*/undomodify BSR CA_GTINT
  241.     SUBQ.W    #1,D3
  242.     BLT.S    L0765A
  243.     BGT.S    L07668
  244.     ADDQ.L    #2,BV_RIP(A6)    ;arith stack
  245.     MOVE.W    0(A6,A1.L),D3
  246. L0765A    MOVEQ    #0,D1
  247.     JSR    L0661E(PC)    ;*/undomodify BSR L0661E
  248.     MOVEQ    #1,D0        ;IO.FBYTE fetch a byte
  249.     TRAP    #3
  250.     MOVEQ    #0,D0
  251.     RTS
  252. L07668    MOVEQ    #-15,D0
  253.     RTS
  254. BAS_POKE:
  255.     MOVEQ    #0,D4        ;here we do not need even
  256.                 ;address
  257.     BSR.S    L07682
  258.     MOVE.B    D1,(A4)
  259.     RTS
  260. POKE_W:
  261.     BSR.S    L07680
  262.     MOVE.W    D1,(A4)
  263.     RTS
  264. POKE_L:
  265.     BSR.S    L07680
  266.     MOVE.L    D1,(A4)
  267.     RTS
  268. L07680    MOVEQ    #$01,D4        ;Check for even address
  269. L07682    JSR    CA_GTLIN(PC)    ;*/undomodify BSR CA_GTLIN
  270.     BNE.S    L076A4
  271.     SUBQ.W    #2,D3
  272.     BNE.S    L076A0
  273.     ADDQ.L    #8,BV_RIP(A6)    ;arith stack
  274.     MOVEA.L    0(A6,A1.L),A4
  275.     MOVE.L    4(A6,A1.L),D1
  276.     MOVE.L    A4,D0
  277.     AND.L    D4,D0        ;address odd ?
  278.     BNE.S    L076A0
  279.     RTS
  280. L076A0    ADDQ.W    #4,A7
  281.     MOVEQ    #-15,D0        ;bad parameter error
  282. L076A4    RTS
  283. BAS_INPUt:
  284.     ST    D7
  285. BAS_PRINt:
  286.     JSR    L04E4C(PC)    ;*/undomodify BSR L04E4C
  287.     MOVEQ    #0,D4
  288.     JSR    CHNRTOID(PC)    ;*/undomodify BSR CHNRTOID
  289.     BNE    L0784E
  290.     MOVE.L    A5,-(A7)
  291.     MOVEA.L    A2,A5
  292.     MOVEQ    #0,D5
  293.     TST.B    D7
  294.     BEQ.S    L076D0
  295.     MOVEQ    #$0B,D0
  296.     MOVEA.L    (A6),A1
  297.     BSR    L0796E
  298.     CMPI.W    #$FFF1,D0
  299.     BNE.S    L076D0
  300.     MOVEQ    #$01,D7
  301. L076D0    CMPA.L    (A7),A3
  302.     BGE    L0783E
  303.     MOVE.B    $01(A6,A3.L),D0
  304.     MOVE.B    D0,D5
  305.     LSR.B    #4,D5
  306.     ANDI.B    #$0F,D0
  307.     BNE.S    L076F2
  308.     TST.B    0(A6,A3.L)
  309.     BNE.S    L076F2
  310.     BSR    L0795A
  311.     BRA    L07832
  312. L076F2    TST.W    $02(A6,A3.L)
  313.     SGE    D1
  314.     AND.B    D7,D1
  315.     BEQ.S    L07714
  316.     MOVE.W    D0,-(A7)
  317.     BSR    L0795A
  318.     MOVE.W    (A7)+,D0
  319.     MOVEA.L    (A7),A4
  320.     JSR    L07A0C(PC)    ;*/undomodify BSR L07A0C
  321.     BNE    L07850
  322.     MOVE.L    A4,(A7)
  323.     BRA    L07832
  324. L07714    TST.B    D7
  325.     BGT    L07838
  326.     MOVEA.L    BV_VVBAS(A6),A0    ;variable values
  327.     MOVE.L    $04(A6,A3.L),D1
  328.     BLT    L07828
  329.     ADDA.L    D1,A0
  330.     CMPI.B    #$03,0(A6,A3.L)
  331.     BNE    L07824
  332.     TST.B    D5
  333.     BEQ.S    L07740
  334.     CMPI.B    #$05,D5
  335.     BNE.S    L07742
  336.     SWAP    D5
  337.     BRA.S    L07742
  338. L07740    MOVEQ    #$03,D5
  339. L07742    MOVE.B    D0,-(A7)
  340.     MOVEA.L    A0,A2
  341.     BSR    L0781A
  342.     SUBA.L    BV_VVBAS(A6),A2    ;variable values
  343.     SUBA.L    BV_CHBAS(A6),A5    ;channel name
  344.     MOVEM.L    A2-A3/A5,-(A7)
  345.     JSR    L04DF6(PC)    ;*/undomodify BSR L04DF6
  346.     MOVEM.L    (A7)+,A2-A3/A5
  347.     ADDA.L    BV_CHBAS(A6),A5    ;channel name
  348.     ADDA.L    BV_VVBAS(A6),A2    ;variable values
  349.     MOVEA.L    A0,A4
  350. L07768    SUBQ.W    #1,D1
  351.     LEA    0(A4,D1.W),A1
  352.     SF    0(A6,A1.L)
  353.     BNE.S    L07768
  354.     MOVE.W    $04(A6,A2.L),D1
  355.     MOVE.B    (A7),D0
  356.     SUBQ.B    #2,D0
  357.     BLT.S    L07788
  358.     BEQ.S    L07784
  359.     MOVEQ    #$02,D0
  360.     BRA.S    L0778C
  361. L07784    MOVEQ    #$06,D0
  362.     BRA.S    L0778C
  363. L07788    SUBQ.W    #1,D1
  364.     MOVEQ    #$01,D0
  365. L0778C    MOVE.W    D0,0(A6,A4.L)
  366.     LSL.W    #1,D1
  367.     MOVE.W    D1,$02(A6,A4.L)
  368. L07796    MOVEA.L    BV_VVBAS(A6),A0    ;variable values
  369.     ADDA.L    0(A6,A2.L),A0
  370.     MOVE.W    $04(A6,A2.L),D0
  371.     LSL.W    #2,D0
  372.     LEA    2(A2,D0.W),A1
  373.     MOVE.W    0(A6,A1.L),D3
  374.     LSR.W    #1,D0
  375. L077AE    LEA    2(A4,D0.W),A1
  376.     MOVE.W    0(A6,A1.L),D1
  377.     LSL.W    #1,D0
  378.     LEA    4(A2,D0.W),A1
  379.     LSR.W    #1,D0
  380.     MULU    0(A6,A1.L),D1
  381.     MULU    0(A6,A4.L),D1
  382.     ADDA.L    D1,A0
  383.     SUBQ.W    #2,D0
  384.     BNE.S    L077AE
  385.     MOVE.B    (A7),D0
  386.     BSR    L0785E
  387.     BNE.S    L077FE
  388.     MOVE.W    $02(A6,A4.L),D0
  389.     BEQ.S    L077FE
  390. L077DA    LSL.W    #1,D0
  391.     LEA    2(A2,D0.W),A1
  392.     MOVE.W    0(A6,A1.L),D1
  393.     LSR.W    #1,D0
  394.     LEA    2(A4,D0.W),A1
  395.     CMP.W    0(A6,A1.L),D1
  396.     BEQ.S    L077F6
  397.     ADDQ.W    #1,0(A6,A1.L)
  398.     BRA.S    L07796
  399. L077F6    CLR.W    0(A6,A1.L)
  400.     SUBQ.W    #2,D0
  401.     BNE.S    L077DA
  402. L077FE    BSR.S    L0781A
  403.     MOVEA.L    A4,A0
  404.     MOVE.L    D0,-(A7)
  405.     MOVE.L    A3,-(A7)
  406.     JSR    L04FE8(PC)    ;*/undomodify BSR L04FE8
  407.     MOVEA.L    (A7)+,A3
  408.     MOVE.L    (A7)+,D0
  409.     ADDQ.W    #2,A7
  410.     BNE.S    L0784C
  411.     TST.B    D5
  412.     BNE.S    L07838
  413.     SWAP    D5
  414.     BRA.S    L07832
  415. L0781A    MOVEQ    #$02,D1
  416.     ADD.W    $04(A6,A2.L),D1
  417.     LSL.W    #1,D1
  418.     RTS
  419. L07824    BSR.S    L0785E
  420.     BRA.S    L07836
  421. L07828    BSR    L0795A
  422.     MOVEQ    #$2A,D1
  423.     BSR    L07960
  424. L07832    BSR    L078E0
  425. L07836    BNE.S    L0784C
  426. L07838    ADDQ.W    #8,A3
  427.     BRA    L076D0
  428. L0783E    TST.B    D5
  429.     BNE.S    L0784A
  430.     TST.B    D7
  431.     BGT.S    L0784A
  432.     BSR    L07934
  433. L0784A    MOVEQ    #0,D0
  434. L0784C    MOVEA.L    (A7)+,A5
  435. L0784E    RTS
  436. L07850    MOVE.L    A4,(A7)
  437.     MOVE.L    D0,-(A7)
  438.     MOVEQ    #$0F,D0
  439.     BSR    L07970
  440.     MOVE.L    (A7)+,D0
  441.     BRA.S    L0784C
  442. L0785E    MOVEA.L    BV_RIP(A6),A1    ;arith stack
  443.     SUBQ.W    #6,A1
  444.     TST.B    D0
  445.     BEQ.S    L07878
  446.     SUBQ.B    #2,D0
  447.     BGT.S    L0787E
  448.     BEQ.S    L0788E
  449.     MOVE.W    0(A6,A0.L),D2
  450.     MOVEA.L    A0,A1
  451.     ADDQ.W    #2,A1
  452.     BRA.S    L078AA
  453. L07878    MOVEA.L    A0,A1
  454.     MOVE.W    D3,D2
  455.     BRA.S    L078AA
  456. L0787E    MOVE.W    0(A6,A0.L),0(A6,A1.L)
  457.     MOVEA.L    (A6),A0
  458.     ADDQ.W    #1,A0
  459.     JSR    CN_ITOD(PC)    ;*/undomodify BSR CN_ITOD
  460.     BRA.S    L078A2
  461. L0788E    MOVE.L    $02(A6,A0.L),$02(A6,A1.L)
  462.     MOVE.W    0(A6,A0.L),0(A6,A1.L)
  463.     MOVEA.L    (A6),A0
  464.     ADDQ.W    #1,A0
  465.     JSR    CN_FTOD(PC)    ;*/undomodify BSR CN_FTOD
  466. L078A2    MOVEA.L    (A6),A1
  467.     ADDQ.W    #1,A1
  468.     MOVE.L    A0,D2
  469.     SUB.L    A1,D2
  470. L078AA    TST.B    D4
  471.     BEQ.S    L078D2
  472.     SWAP    D4
  473.     ADDQ.W    #1,D2
  474.     SUBQ.W    #1,A1
  475.     MOVE.B    0(A6,A1.L),-(A7)
  476.     SUB.W    D2,D4
  477.     BLT.S    L078C4
  478.     MOVE.B    #$20,0(A6,A1.L)
  479.     BRA.S    L078D0
  480. L078C4    MOVE.B    #$0A,0(A6,A1.L)
  481.     MOVE.W    #$FFFF,$20(A6,A5.L)
  482. L078D0    SWAP    D4
  483. L078D2    BSR    L07968
  484.     TST.B    D4
  485.     BEQ.S    L078E0
  486.     SUBA.W    D2,A1
  487.     MOVE.B    (A7)+,0(A6,A1.L)
  488. ; --------------------------------------------------------------
  489. */beginoverlay
  490.     ifd    NoTas
  491. L078E0:
  492.     BSET    #7,BV_BRK(A6)    ;*/mend TAS BV_BRK(A6)
  493.                 ;There has been a
  494.                 ;break (0) or not ($80)
  495.     BNE.S    o078E8
  496.     MOVEQ    #-$01,D0
  497. o078E8    TST.L    D0
  498.     BNE.S    L07958
  499.     TST.B    D7
  500.     BGT.S    L07956
  501.     SF    D4
  502.     MOVE.B    D5,D0        ;*/insert
  503.     SUBQ.B    #$01,D0        ;*/modify CMPI.B #$01,D5
  504.     BEQ.S    L0793E
  505.     SUBQ.B    #$02,D0        ;*/modify CMPI.B #$03,D5
  506.     BEQ.S    L07934
  507.     endc
  508.     ifnd    NoTas
  509. L078E0:
  510.     TAS    BV_BRK(A6)
  511.     BNE.S    L078E8
  512.     MOVEQ    #$-$01,D0
  513. L078E8
  514.     TST.L    D0
  515.     BNE.S    L07958
  516.     TST.B    D7
  517.     BGT.S    L07956
  518.     SF    D4
  519.     CMPI.B    #$01,D5
  520.     BEQ.S    L0793E
  521.     CMPI.B    #$03,D5
  522.     BEQ.S    L07934
  523.     endc
  524. */endoverlay
  525. ; --------------------------------------------------------------
  526.     CMPI.B    #$04,D5
  527.     BEQ.S    L07926
  528.     CMPI.B    #$05,D5
  529.     BNE.S    L07956
  530.     MOVE.L    A5,-(A7)
  531.     ADDQ.W    #8,A3
  532.     LEA    8(A3),A5
  533.     JSR    GET_INT2(PC)    ;*/undomodify BSR GET_INT2
  534.     MOVEA.L    (A7)+,A5
  535.     BNE.S    L07958
  536.     MOVE.W    0(A6,A1.L),D2
  537.     ADDQ.L    #2,BV_RIP(A6)    ;arith stack
  538.     BSR.S    L0797A
  539.     BRA.S    L0794A
  540. L07926    BSR.S    L0797A
  541.     SUB.W    D0,D1
  542.     MOVE.W    D1,D4
  543.     SWAP    D4
  544.     TST.W    D0
  545.     SNE    D4
  546.     BRA.S    L07956
  547. L07934    MOVEQ    #$0A,D1
  548.     BSR.S    L07960
  549.     CLR.W    $20(A6,A5.L)
  550.     BRA.S    L07956
  551. L0793E    BSR.S    L0797A
  552.     MOVE.W    D0,D2
  553.     ADDQ.W    #8,D2
  554.     ANDI.W    #$00F8,D2
  555.     SUBQ.W    #8,D1
  556. L0794A    SUB.W    D2,D1
  557.     BLT.S    L07934
  558.     SUB.W    D0,D2
  559. L07950    BSR.S    L0795E
  560.     SUBQ.W    #1,D2
  561.     BGT.S    L07950
  562. L07956    MOVEQ    #0,D0
  563. L07958    RTS
  564. L0795A    TST.B    D4
  565.     BEQ.S    L07958
  566. L0795E    MOVEQ    #$20,D1        ;Send a blank
  567. L07960    MOVEQ    #5,D0        ;IO.SBYTE send a byte
  568.     ADDQ.W    #1,$20(A6,A5.L)
  569.     BRA.S    L07970
  570. L07968    MOVEQ    #7,D0        ;IO.SSTRG sends a string of
  571.                 ;bytes
  572.     ADD.W    D2,$20(A6,A5.L)    ;number of bytes to be send
  573. L0796E    TRAP    #4
  574. L07970    MOVEQ    #-1,D3
  575.     MOVEA.L    0(A6,A5.L),A0
  576.     TRAP    #3
  577.     RTS
  578. L0797A    MOVEQ    #$0B,D0
  579.     MOVEA.L    (A6),A1
  580.     BSR.S    L0796E
  581.     TST.L    D0
  582.     BNE.S    L0798E
  583.     MOVE.W    $04(A6,A1.L),D0
  584.     MOVE.W    0(A6,A1.L),D1
  585.     RTS
  586. L0798E    MOVE.W    $22(A6,A5.L),D1
  587.     MOVE.W    $20(A6,A5.L),D0
  588.     RTS
  589. BAS_RANDomise:
  590.     JSR    CA_GTLIN(PC)    ;*/undomodify BSR CA_GTLIN
  591.     BNE.S    L079BE
  592.     SUBQ.W    #1,D3
  593.     BGT.S    L079C0
  594.     BEQ.S    L079AA
  595.     MOVEQ    #$13,D0        ;SD.PCOL position cursor on
  596.                 ;previous char column
  597.     TRAP    #1
  598.     BRA.S    L079B4
  599. L079AA    MOVE.L    0(A6,A1.L),D1
  600.     ADDQ.L    #4,BV_RIP(A6)    ;arith stack
  601.     MOVEQ    #0,D0
  602. L079B4    MOVE.L    D1,D2
  603.     SWAP    D1
  604.     ADD.L    D2,D1
  605.     MOVE.L    D1,BV_RAND(A6)    ;Random number
  606. L079BE    RTS
  607. L079C0    MOVEQ    #-$0F,D0
  608.     RTS
  609. L079C4    MOVE.L    D0,-(A7)
  610.     MOVEQ    #0,D4
  611. L079C8    MOVEQ    #4,D0
  612.     TRAP    #4
  613.     MOVEA.L    BV_BFP(A6),A1    ;buffer running ptr
  614.     MOVE.L    BV_TKBAS(A6),D2    ;token list
  615.     SUB.L    (A6),D2
  616.     MOVE.L    A1,D1
  617.     SUB.L    (A6),D1
  618.     MOVE.W    D1,D4
  619.     MOVE.L    D4,D1
  620.     TST.L    (A7)
  621.     BEQ.S    L079E6
  622.     MOVEQ    #2,D0        ;IO.FLINE fetch line of
  623.                 ;chars terminated by <LF>
  624.     SUB.W    D1,D2
  625. L079E6    MOVEQ    #-1,D3
  626.     TRAP    #3
  627.     TST.L    D0
  628.     BGE.S    L07A06
  629.     CMPI.B    #$FB,D0
  630.     BNE.S    L07A06
  631.     MOVE.L    D1,D4
  632.     MOVE.L    A1,BV_BFP(A6)    ;buffer running
  633.     MOVE.L    A0,-(A7)
  634.     MOVEQ    #$7E,D1
  635.     JSR    L04E6A(PC)    ;*/undomodify BSR L04E6A
  636.     MOVEA.L    (A7)+,A0
  637.     BRA.S    L079C8
  638. L07A06    ADDQ.W    #4,A7
  639. L07A08    TST.L    D0
  640.     RTS
  641. L07A0C    MOVE.L    D7,-(A7)
  642.     MOVE.W    D0,-(A7)
  643.     BSR.S    L07A8E
  644.     BEQ.S    L07A1A
  645. L07A14    ADDQ.W    #2,A7
  646. L07A16    MOVE.L    (A7)+,D7
  647.     BRA.S    L07A08
  648. L07A1A    MOVEA.L    0(A6,A5.L),A0
  649.     MOVE.L    (A6),BV_BFP(A6)
  650.     TST.B    D7
  651.     SGT    D0
  652.     SUBA.L    BV_TKBAS(A6),A3    ;token list
  653.     SUBA.L    BV_TKBAS(A6),A4    ;token list
  654.     SUBA.L    BV_TKBAS(A6),A5    ;token list
  655.     MOVEM.L    A3-A5,-(A7)
  656.     BSR.S    L079C4
  657.     MOVEM.L    (A7)+,A3-A5
  658.     ADDA.L    8(A6),A3
  659.     ADDA.L    8(A6),A4
  660.     ADDA.L    8(A6),A5
  661.     BNE.S    L07A14
  662.     MOVE.L    A3,-(A7)
  663.     MOVEQ    #$13,D0        ;SD.PCOL position cursor on
  664.                 ;previous column
  665.     TRAP    #3
  666.     MOVEQ    #$14,D0        ;SD.NCOL position cursor on
  667.                 ;next column
  668.     TRAP    #3
  669.     MOVEA.L    (A7)+,A3
  670.     MOVEA.L    (A6),A0
  671.     MOVE.L    A1,D7
  672.     MOVEA.L    BV_RIP(A6),A1    ;arith stack
  673.     MOVE.W    (A7)+,D0
  674.     SUBQ.B    #2,D0
  675.     BLT.S    L07A74
  676.     BEQ.S    L07A6C
  677.     JSR    CN_DTOI(PC)    ;*/undomodify BSR CN_DTOI
  678.     BRA.S    L07A70
  679. L07A6C    JSR    CN_DTOF(PC)    ;*/undomodify BSR CN_DTOF
  680. L07A70    BNE.S    L07A16
  681.     BRA.S    L07A7C
  682. L07A74    MOVEA.L    D7,A0
  683.     SUBQ.W    #1,A0
  684.     JSR    L05A20(PC)    ;*/undomodify BSR L05A20
  685. L07A7C    MOVE.L    A1,BV_RIP(A6)    ;arith stack
  686.     SUBA.L    BV_CHBAS(A6),A5    ;channel name
  687.     JSR    BP_LET(PC)    ;*/undomodify BSR BP_LET
  688.     ADDA.L    BV_CHBAS(A6),A5    ;channel name
  689.     BRA.S    L07A16
  690. L07A8E    MOVE.B    0(A6,A3.L),D0
  691.     SUBQ.B    #2,D0
  692.     BLE.S    L07AC0
  693.     SUBQ.B    #1,D0
  694.     BNE.S    L07AB8
  695.     MOVE.B    1(A6,A3.L),D0
  696.     ANDI.B    #$0F,D0
  697.     SUBQ.B    #1,D0
  698.     BGT.S    L07AC8
  699.     MOVEA.L    4(A6,A3.L),A2
  700.     ADDA.L    BV_VVBAS(A6),A2    ;variable values
  701.     CMPI.W    #1,4(A6,A2.L)
  702.     BGT.S    L07AC8
  703.     BRA.S    L07AC0
  704. L07AB8    SUBQ.B    #3,D0
  705.     BLT.S    L07AC4
  706.     SUBQ.B    #1,D0
  707.     BGT.S    L07AC4
  708. L07AC0    MOVEQ    #0,D0
  709.     RTS
  710. L07AC4    MOVEQ    #-12,D0        ;bad name
  711.     RTS
  712. L07AC8    MOVEQ    #-19,D0        ;not implemented
  713.     RTS
  714. BAS_RECOl:
  715.     JSR    L08038(PC)    ;*/undomodify BSR L08038
  716.     BNE.S    L07AF4
  717.     CMPI.W    #8,D3
  718.     BNE.S    L07AF2
  719.     MOVEA.L    A1,A2
  720.     MOVEQ    #$07,D0
  721. L07ADC    MOVE.B    $01(A6,A2.L),$01(A6,A1.L)
  722.     SUBQ.W    #2,A2
  723.     SUBQ.W    #1,A1
  724.     DBF    D0,L07ADC
  725.     ADDQ.W    #2,A1
  726.     MOVEQ    #$26,D4
  727.     JMP    L07FC4(PC)    ;*/undomodify BRA L07FC4
  728. L07AF2    MOVEQ    #-$0F,D0
  729. L07AF4    RTS
  730. BAS_EDIT:
  731.     MOVEQ    #0,D4
  732.     BRA.S    L07AFC
  733. BAS_AUTO:
  734.     MOVEQ    #$0A,D4
  735. L07AFC    ST    BV_AUTO(A6)    ;AUTO/EDIT on ($ff) or off (0)
  736.     TST.B    BV_UNRVL(A6)    ;Need to unravel
  737.                 ;($ff) or not (0)
  738.     BNE.S    L07B32
  739.     BRA.S    L07B26
  740. L07B08    MOVEQ    #0,D5
  741.     CMPA.L    $0004(A7),A3
  742.     BEQ.S    L07B20
  743.     JSR    L07452(PC)    ;*/undomodify BSR L07452
  744.     BEQ.S    L07B20
  745.     JSR    L074F0(PC)    ;*/undomodify BSR L074F0
  746.     BEQ.S    L07B22
  747.     ADDQ.W    #4,A7
  748.     BRA.S    L07B84
  749. L07B20    MOVEQ    #$01,D0
  750. L07B22    RTS
  751. BAS_RENUm:
  752.     MOVEQ    #$0A,D4
  753. L07B26    JSR    L07E30(PC)    ;*/undomodify BSR L07E30
  754.     BEQ.S    L07B32
  755.     ST    $00B8(A6)
  756.     RTS
  757. L07B32    MOVE.L    A5,-(A7)
  758.     MOVE.W    #$7FFF,D7
  759.     MOVEQ    #$64,D6
  760.     SWAP    D4
  761.     BSR.S    L07B08
  762.     CMPI.B    #$05,D5
  763.     BNE.S    L07B5A
  764.     TST.B    D0
  765.     BNE.S    L07B4A
  766.     MOVE.W    D1,D4
  767. L07B4A    BSR.S    L07B08
  768.     CMPI.B    #$02,D5
  769.     BNE.S    L07B84
  770.     TST.B    D0
  771.     BNE.S    L07B66
  772.     MOVE.W    D1,D7
  773.     BRA.S    L07B66
  774. L07B5A    CMPI.B    #$02,D5
  775.     BNE.S    L07B68
  776.     TST.B    D0
  777.     BNE.S    L07B66
  778.     MOVE.W    D1,D4
  779. L07B66    BSR.S    L07B08
  780. L07B68    TST.B    D0
  781.     BNE.S    L07B6E
  782.     MOVE.W    D1,D6
  783. L07B6E    SWAP    D4
  784.     CMPI.B    #$01,D5
  785.     BNE.S    L07B7C
  786.     BSR.S    L07B08
  787.     BNE.S    L07B7C
  788.     MOVE.W    D1,D4
  789. L07B7C    MOVE.W    D4,D3
  790.     SWAP    D4
  791.     TST.B    D5
  792.     BEQ.S    L07B94
  793. L07B84    SF    BV_AUTO(A6)    ;AUTO/EDIT on ($ff) or off (0)
  794.     ADDQ.W    #4,A7
  795.     MOVEQ    #-$0F,D0
  796.     RTS
  797. L07B8E    ADDQ.W    #2,A7
  798.     MOVEQ    #-$04,D0
  799.     RTS
  800. L07B94    MOVE.W    D7,D5
  801.     ADDQ.W    #4,A7
  802.     TST.B    BV_AUTO(A6)    ;AUTO/EDIT on ($ff) or off (0)
  803.     BEQ.S    L07BAA
  804.     MOVE.W    D6,BV_EDLIN(A6)    ;line # to edit next
  805.     MOVE.W    D3,BV_EDINC(A6)    ;Increment on edit range
  806. L07BA6    MOVEQ    #0,D0
  807.     RTS
  808. L07BAA    MOVEA.L    BV_PFBAS(A6),A4    ;program file
  809.     CMPA.L    BV_PFP(A6),A4    ;program running ptr
  810.     BGE.S    L07BA6
  811.     CLR.W    -(A7)
  812.     CLR.L    BV_LINUM(A6)    ;current line #
  813.     TST.W    D4
  814.     BEQ.S    L07BD8
  815.     JSR    L09FBE(PC)    ;*/undomodify BSR L09FBE
  816.     CMPA.L    (A6),A4
  817.     BEQ.S    L07BD8
  818.     SUBA.W    BV_LENGTH(A6),A4    ;current length
  819.     MOVE.W    $02(A6,A4.L),D2
  820.     CMP.W    D2,D6
  821.     BLE.S    L07B8E
  822.     ADDA.W    BV_LENGTH(A6),A4    ;current length
  823.     MOVE.W    D2,(A7)
  824. L07BD8    MOVEQ    #0,D0
  825. L07BDA    ADDQ.W    #1,D0
  826.     BSR.S    L07C4E
  827.     BEQ.S    L07BDA
  828.     BGT.S    L07BE6
  829.     MOVE.W    #$7FFF,D2
  830. L07BE6    MOVE.L    D0,D1
  831.     SUBQ.W    #1,D1
  832.     MULU    D3,D1
  833.     ADD.L    D6,D1
  834.     EXT.L    D2
  835.     CMP.L    D2,D1
  836.     BGE.S    L07B8E
  837.     MOVE.W    D2,-(A7)
  838.     MOVEQ    #$02,D1
  839.     ADD.L    D0,D1
  840.     LSL.L    #2,D1
  841.     JSR    L04DF6(PC)    ;*/undomodify BSR L04DF6
  842.     MOVEA.L    A0,A3
  843.     SUBA.L    BV_VVBAS(A6),A3    ;variable values
  844.     MOVE.L    D1,0(A6,A0.L)
  845.     SUBA.W    BV_LENGTH(A6),A4    ;current length
  846.     MOVE.W    2(A6,A4.L),BV_LINUM(A6) ;current line #
  847.     ADDA.W    BV_LENGTH(A6),A4    ;current length
  848.     JSR    L09FBE(PC)    ;*/undomodify BSR L09FBE
  849.     BSR    L07D56
  850.     MOVE.W    D6,D0
  851.     MOVE.W    4(A6,A4.L),D2
  852.     MOVE.W    2(A7),D6
  853.     SWAP    D4
  854. L07C2C    MOVE.W    D2,0(A6,A0.L)
  855.     MOVE.W    D0,2(A6,A0.L)
  856.     MOVE.W    D0,4(A6,A4.L)
  857.     ADDQ.W    #4,A0
  858.     ADD.W    D4,D0
  859.     BSR.S    L07C4E
  860.     BEQ.S    L07C2C
  861.     MOVE.W    (A7),D5
  862.     MOVE.W    D5,0(A6,A0.L)
  863.     MOVE.W    D5,$02(A6,A0.L)
  864.     ADDQ.W    #4,A7
  865.     BRA.S    L07C7A
  866. L07C4E    MOVE.W    0(A6,A4.L),D1
  867.     ADDQ.W    #2,A4
  868.     ADD.W    D1,BV_LENGTH(A6)    ;current length
  869.     ADDA.W    BV_LENGTH(A6),A4    ;current length
  870.     CMPA.L    BV_PFP(A6),A4    ;program running ptr
  871.     BGE.S    L07C72
  872.     MOVE.W    4(A6,A4.L),D2
  873.     CMP.W    D2,D5
  874.     BLT.S    L07C6E
  875.     MOVEQ    #0,D1
  876.     RTS
  877. L07C6E    MOVEQ    #1,D1
  878.     RTS
  879. L07C72    MOVEQ    #-1,D1
  880.     RTS
  881. L07C76    JMP    L0A56C(PC)    ;*/undomodify BRA L0A56C
  882. L07C7A    ST    BV_EDIT(A6)    ;Program has been
  883.                 ;edited ($ff) or not (0)
  884.     JSR    L0958E(PC)    ;*/undomodify BSR L0958E
  885.     BRA.S    L07C8A
  886. L07C84    JSR    L0A60E(PC)    ;*/undomodify BSR L0A60E
  887.     BNE.S    L07D06
  888. L07C8A    BSR.S    L07C76
  889.     CMPI.W    #$8111,D1
  890.     BEQ.S    L07CB2
  891.     CMPI.W    #$810A,D1
  892.     BEQ.S    L07CAE
  893.     CMPI.W    #$8115,D1
  894.     BNE.S    L07C84
  895. L07C9E    JSR    L09072(PC)    ;*/undomodify BSR L09072
  896.     JSR    L09686(PC)    ;*/undomodify BSR L09686
  897.     BEQ.S    L07C84
  898.     CMPI.W    #$810A,D1
  899.     BNE.S    L07C9E
  900. L07CAE    ADDQ.W    #2,A4
  901.     BSR.S    L07C76
  902. L07CB2    ADDQ.W    #2,A4
  903.     BSR.S    L07C76
  904.     CMPI.W    #$840A,D1
  905.     BEQ.S    L07C84
  906.     SUBI.W    #$F000,D1
  907.     BGE.S    L07CCE
  908. L07CC2    MOVE.W    #$8404,D4
  909.     JSR    L0A5E0(PC)    ;*/undomodify BSR L0A5E0
  910.     BNE.S    L07C84
  911.     BRA.S    L07CB2
  912. L07CCE    MOVEA.L    BV_RIP(A6),A1    ;arith stack
  913.     SUBQ.W    #6,A1
  914.     MOVE.W    D1,0(A6,A1.L)
  915.     MOVE.L    2(A6,A4.L),2(A6,A1.L)
  916.     JSR    RI_NINT(PC)    ;*/undomodify BSR RI_NINT
  917.     MOVE.W    0(A6,A1.L),D1
  918.     BSR.S    L07D60
  919.     BLE.S    L07CC2
  920.     MOVE.W    D1,0(A6,A1.L)
  921.     JSR    RI_FLOAT(PC)    ;*/undomodify BSR RI_FLOAT
  922.     MOVE.W    0(A6,A1.L),D0
  923.     ADDI.W    #$F000,D0
  924.     MOVE.W    D0,0(A6,A4.L)
  925.     MOVE.L    $02(A6,A1.L),$02(A6,A4.L)
  926.     BRA.S    L07CC2
  927. L07D06    MOVE.W    BV_LSBEF(A6),D1    ;Invisible top line
  928.     BSR.S    L07D60
  929.     MOVE.W    D1,BV_LSBEF(A6)    ;Invisible top line
  930.     MOVE.W    BV_LSBAS(A6),D1    ;Bottom line in window
  931.     BSR.S    L07D60
  932.     MOVE.W    D1,BV_LSBAS(A6)    ;Bottom line in window
  933.     MOVE.W    BV_LSAFT(A6),D1    ;Invisible bottom line
  934.     BSR.S    L07D60
  935.     MOVE.W    D1,BV_LSAFT(A6)    ;Invisible bottom line
  936.     MOVEA.L    BV_LNBAS(A6),A1    ;line # table
  937.     MOVE.W    0(A6,A1.L),D1
  938.     BSR.S    L07D60
  939.     MOVE.W    D1,0(A6,A1.L)
  940.     ST    BV_CONT(A6)    ;continue ($80) or stop (0)
  941.     BSR.S    L07D56
  942.     SUBQ.W    #4,A0
  943.     MOVE.L    0(A6,A0.L),D1
  944.     JSR    L04FE8(PC)    ;*/undomodify BSR L04FE8
  945.     MOVEQ    #0,D2
  946.     MOVEQ    #0,D5
  947.     SUBA.L    A0,A0
  948.     JSR    L090A2(PC)    ;*/undomodify BSR L090A2
  949.     MOVEA.L    D0,A0
  950.     JSR    L08FE6(PC)    ;*/undomodify BSR L08FE6
  951.     MOVEQ    #0,D0
  952.     RTS
  953. L07D56    MOVEA.L    BV_VVBAS(A6),A0    ;variable values
  954.     ADDA.L    A3,A0
  955.     ADDQ.W    #4,A0
  956.     RTS
  957. L07D60    CMP.W    D6,D1
  958.     BLE.S    L07D76
  959.     CMP.W    D1,D5
  960.     BLT.S    L07D76
  961.     BSR.S    L07D56
  962. L07D6A    CMP.W    0(A6,A0.L),D1
  963.     ADDQ.W    #4,A0
  964.     BGT.S    L07D6A
  965.     MOVE.W    -$02(A6,A0.L),D1
  966. L07D76    RTS
  967. BAS_REPOrt:
  968.     MOVEQ    #0,D1
  969.     JSR    L065E8(PC)    ;*/undomodify BSR L065E8
  970.     MOVE.L    $C2(A6),D0    ;Not listet in Adrian
  971.                 ;Dickens !!!
  972.     MOVE.W    BV_LINUM(A6),-(A7)     ;current line #
  973.     MOVE.W    $C6(A6),BV_LINUM(A6)   ;make ??? the current line
  974.                 ;number
  975.     JSR    L09BDC(PC)    ;*/undomodify BSR L09BDC
  976.     MOVE.W    (A7)+,BV_LINUM(A6)     ;get back old line #
  977.     MOVEQ    #0,D0
  978.     RTS
  979. BAS_CLEAr:
  980.     MOVEQ    #0,D6
  981.     MOVEQ    #0,D0
  982.     MOVE.W    #$FFFF,BV_NXLIN(A6) ;line # to start after
  983.     BRA.S    L07DE0
  984. BAS_RUN:
  985.     JSR    CA_GTINT(PC)    ;*/undomodify BSR CA_GTINT
  986.     BNE.S    L07E1E
  987.     MOVEQ    #$06,D6
  988.     MOVE.W    D7,BV_NXLIN(A6)    ;line # to start after
  989.     SUBQ.W    #1,D3
  990.     BLT.S    L07E14
  991.     BEQ.S    L07DBA
  992.     MOVEQ    #-$0F,D0
  993.     RTS
  994. L07DBA    MOVE.W    0(A6,A1.L),BV_NXLIN(A6) ;line # to after
  995.     MOVE.B    D7,$8A(A6)    ;which statement to start
  996.                 ;after
  997.     ADDQ.L    #2,BV_RIP(A6)    ;arith stack
  998.     BRA.S    L07E14
  999. BAS_MERGe:
  1000.     BSR.S    L07E30
  1001.     MOVEQ    #$0E,D6
  1002.     TST.B    $6F(A6)        ;single line execution on
  1003.                 ;or off ?
  1004.     BNE.S    L07DF6
  1005. BAS_MRUN:
  1006.     BSR.S    L07E30
  1007.     MOVEQ    #$0C,D6
  1008.     BSR.S    L07E20
  1009.     BNE.S    L07E0E
  1010.     MOVE.W    D7,BV_NXLIN(A6)    ;line # to start after
  1011. L07DE0    TST.B    $6F(A6)        ;single line execution on
  1012.                 ;or off ?
  1013.     BNE.S    L07E14
  1014.     MOVE.W    BV_LINUM(A6),BV_NXLIN(A6) ;current line # ->
  1015.                 ;line to start
  1016.     MOVE.B    $6C(A6),$8A(A6)    ;current statement on line
  1017.                 ;-> statement
  1018.     BRA.S    L07E14        ;to start after
  1019. BAS_LOAD:
  1020.     MOVEQ    #$0A,D6
  1021. L07DF6    BSR.S    L07E20
  1022.     BRA.S    L07E0E
  1023. BAS_LRUN:
  1024.     MOVEQ    #$08,D6
  1025.     BSR.S    L07E20
  1026.     BNE.S    L07E0E
  1027.     MOVE.W    D7,BV_NXLIN(A6)    ;line # to start after
  1028.     BRA.S    L07E14
  1029. BAS_NEW:
  1030.     MOVEQ    #$02,D6
  1031.     BRA.S    L07E0C
  1032. BAS_STOP:
  1033.     MOVEQ    #$04,D6
  1034. L07E0C    MOVEQ    #0,D0
  1035. L07E0E    MOVE.W    #$FFFF,BV_NXLIN(A6) ;line # to start after
  1036. L07E14    SF    BV_CONT(A6)    ;STOP processing flag
  1037.     MOVE.W    D6,$8C(A6)    ;which stop number set
  1038.     TST.L    D0
  1039. L07E1E    RTS
  1040.  
  1041. ; --------------------------------------------------------------
  1042. ;*/beginoverlay
  1043.  
  1044. L07E20:
  1045.     bra    L07E20fix
  1046.  
  1047. ;*/removecode    MOVEQ    #$01,D4
  1048. ;*/removecode    JSR    L069C4(PC)
  1049. ;*/removecode    BNE.S    L07E1E
  1050. ;*/removecode    MOVE.L    A0,BV_COMCH(A6) ;Command channel
  1051. ;*/removecode    MOVEQ    #0,D0
  1052. ;*/removecode    RTS
  1053.  
  1054. NOP07E30:
  1055.     DCB.w ($7E30-(NOP07E30-ORGN))/2,$4E71
  1056.  
  1057. ;*/endoverlay
  1058. ; --------------------------------------------------------------
  1059.  
  1060. L07E30    TST.B    BV_UNRVL(A6)    ;Need to unravel
  1061.                 ;($ff) or not (0)
  1062.     BNE.S    L07E44
  1063.     MOVE.L    BV_RTP(A6),D0    ;return table running ptr
  1064.     SUB.L    BV_RTBAS(A6),D0    ;return table
  1065.     BEQ.S    L07E44
  1066.     ADDQ.W    #4,A7
  1067.     MOVEQ    #-$13,D0
  1068. L07E44    RTS
  1069. BAS_RETRy:
  1070.     SUBQ.B    #1,BV_CNSTM(A6)    ;Statement to continue from
  1071.     BGE.S    BAS_CONTinue
  1072.     SF    BV_CNSTM(A6)    ;Statement to CONTINUE from
  1073. BAS_CONTinue:
  1074.     SF    $C0(A6)        ;not documented !!!
  1075.     MOVEQ    #$10,D6
  1076.     BRA.S    L07E0C
  1077. BAS_TRA:
  1078.     JSR    CA_GTLIN(PC)    ;*/undomodify BSR CA_GTLIN
  1079.     BNE.S    L07E8A
  1080.     CLR.L    D2
  1081.     SUBQ.W    #1,D3
  1082.     BEQ.S    L07E78
  1083.     SUBQ.W    #1,D3
  1084.     BNE.S    L07E8C
  1085.     ADDQ.L    #4,BV_RIP(A6)    ;arith stack
  1086.     MOVE.L    4(A6,A1.L),D2
  1087.     BNE.S    L07E78
  1088. RLOC0D    MOVE.L    #(MSG_LIST-ORG0),D2 ;*/modify MOVE.L $BFE6,D2
  1089.                 ;error message pointers
  1090. L07E78    ADDQ.L    #4,BV_RIP(A6)    ;arith stack
  1091.     MOVE.L    0(A6,A1.L),D1
  1092.     MOVEQ    #$24,D0        ;not defined in advanced
  1093.                 ;user guide !!!!!!
  1094.     TRAP    #1
  1095.     TST.L    D0
  1096.     BMI.S    L07E8C
  1097.     MOVEQ    #0,D0
  1098. L07E8A    RTS
  1099. L07E8C:
  1100.     MOVEQ    #-15,D0        ;Bad parameter
  1101.     RTS
  1102. ; --------------------------------------------------------------
  1103. ;*/beginundoinsert
  1104. ; Procedure to disable the Directory device driver search list
  1105. CLR_SEALst:
  1106. ;     BSET     #0,$28002
  1107. ;     MOVEQ     #0,D0
  1108. ;     RTS
  1109. ; Procedure to enable Overflow error on arithmetic operations
  1110. OV_ON:
  1111. ;     BCLR     #1,$28002
  1112. ;     MOVEQ     #0,D0
  1113. ;     RTS
  1114. ; Procedure to disable Overflow error on arithmetic operations
  1115. OV_OFF:
  1116. ;     BSET     #1,$28002
  1117. ;     MOVEQ     #0,D0
  1118. ;     RTS
  1119. ;*/endundoinsert
  1120. ; --------------------------------------------------------------
  1121. TURNTO:
  1122.     BSR    L07F24
  1123.     BNE.S    L07ED0
  1124.     BRA.S    L07EA6
  1125. TURN:
  1126.     BSR    L07F24
  1127.     BNE.S    L07ED0
  1128.     BSR    L07F42
  1129.     JSR    RI_ADD(PC)    ;*/undomodify BSR RI_ADD
  1130. L07EA6    LEA    L07F52(PC),A3    ;table for TURN operations
  1131.     LEA    $0006(A1),A4
  1132.     SUBQ.W    #6,A1
  1133.     MOVE.W    #$0809,0(A6,A1.L)
  1134.     MOVE.L    #$5A000000,$02(A6,A1.L)
  1135.     JSR    RI_EXECB(PC)    ;*/undomodify BSR RI_EXECB
  1136.     MOVE.W    0(A6,A1.L),$10(A6,A2.L)
  1137.     MOVE.L    $02(A6,A1.L),$12(A6,A2.L)
  1138. L07ECE    MOVEQ    #0,D0
  1139. L07ED0    RTS
  1140. BAS_PENUp:
  1141.     MOVEQ    #0,D4
  1142.     BRA.S    L07ED8
  1143. BAS_PENDown:
  1144.     MOVEQ    #$01,D4
  1145. L07ED8    JSR    CHNRTOID(PC)    ;*/undomodify BSR CHNRTOID
  1146.     BNE.S    L07ED0
  1147.     MOVE.B    D4,$16(A6,A2.L)
  1148.     BRA.S    L07ECE
  1149. BAS_MOVE:
  1150.     BSR.S    L07F24
  1151.     BNE.S    L07F22
  1152.     BSR.S    L07F42
  1153.     SUBQ.W    #6,A1
  1154.     MOVE.W    #$07FB,0(A6,A1.L)
  1155.     MOVE.L    #$477D1A89,$02(A6,A1.L)
  1156.     JSR    RI_MULT(PC)    ;*/undomodify BSR RI_MULT
  1157.     JSR    L06D6E(PC)    ;*/undomodify BSR L06D6E
  1158.     JSR    L06D7E(PC)    ;*/undomodify BSR L06D7E
  1159.     LEA    L07F5A(PC),A3
  1160.     LEA    $0018(A1),A4
  1161.     JSR    RI_EXECB(PC)    ;*/undomodify BSR RI_EXECB
  1162.     JSR    L06D8E(PC)    ;*/undomodify BSR L06D8E
  1163.     TST.B    $16(A6,A2.L)
  1164.     BEQ.S    L07ECE
  1165.     MOVEQ    #$31,D0        ;SD.LINE plots a line
  1166.     TRAP    #4
  1167.     TRAP    #3
  1168. L07F22    RTS
  1169. L07F24    MOVE.W    #$100,D1
  1170.     JSR    BV_CHRIX(PC)    ;*/undomodify BSR BV_CHRIX
  1171.     JSR    CHNRTOID(PC)    ;*/undomodify BSR CHNRTOID
  1172.     BNE.S    L07F40
  1173.     MOVE.L    BV_RIP(A6),-(A7)    ;arith stack
  1174.     JSR    GET_REAL(PC)    ;*/undomodify BSR GET_REAL
  1175.     MOVE.L    (A7)+,BV_RIP(A6)    ;arith stack
  1176.     TST.L    D0
  1177. L07F40    RTS
  1178. L07F42    SUBQ.W    #6,A1
  1179.     MOVE.W    $10(A6,A2.L),0(A6,A1.L)
  1180.     MOVE.L    $12(A6,A2.L),$02(A6,A1.L)
  1181.     RTS
  1182. L07F52    ;table for TURN operations
  1183.     DC.L    $FAF41004,$080E0C00
  1184. L07F5A    DC.L    $FAF4180E,$EE0AFAF4,$1A0EE80A
  1185.     DC.W    0
  1186. BAS_WIDTh:
  1187.     JSR    L08038(PC)    ;*/undomodify BSR L08038
  1188.     BNE.S    L07F78
  1189.     SUBQ.W    #1,D3
  1190.     BNE.S    L07F7A
  1191.     MOVE.W    0(A6,A1.L),$22(A6,A2.L)
  1192. L07F78    RTS
  1193. L07F7A:
  1194.     MOVEQ    #-15,D0
  1195.     RTS
  1196. BAS_WINDow:
  1197.     JSR    L08038(PC)    ;*/undomodify BSR L08038
  1198.     BNE.S    L07FA2
  1199.     MOVEQ    #$0D,D4
  1200.     MOVEQ    #-$80,D1
  1201.     CLR.W    D2
  1202.     BRA.S    L07F9C
  1203. BAS_BLOCk:
  1204.     JSR    L08038(PC)    ;*/undomodify BSR L08038
  1205.     BNE.S    L07FA2
  1206.     MOVEQ    #$2E,D4        ;SD.FILL fill rectangular
  1207.                 ;block within window
  1208.     SUBQ.W    #4,D3
  1209.     JSR    L07FD4(PC)    ;*/undomodify BSR.S L07FD4
  1210.                 ;*/undomodify nop
  1211.     BNE.S    L07FA2
  1212. L07F9C:
  1213.     SUBQ.W    #6,A1
  1214.     JMP    L07FC4(PC)    ;*/undomodify BRA.S L07FC4
  1215.                 ;*/undomodify nop
  1216. L07FA2:
  1217.     RTS
  1218. BAS_BORDer:
  1219.     JSR    L08038(PC)    ;*/undomodify BSR L08038
  1220.     BNE.S    L07FA2
  1221.     MOVEQ    #$0C,D4        ;SD.BORDR sets the border
  1222.                 ;width and colour
  1223.     MOVEQ    #-$80,D1
  1224.     CMPI.W    #1,D3
  1225.     BLS.S    L07FBC
  1226.     SUBQ.W    #1,D3
  1227.     JSR    L07FD4(PC)    ;*/undomodify BSR.S L07FD4
  1228.                 ;*/undomodify nop
  1229.     BNE.S    L07FA2
  1230. L07FBC:
  1231.     MOVE.W    0(A6,A1.L),D2
  1232.     JMP    L07FC4(PC)    ;*/undomodify nop
  1233.                 ;*/undomodify nop
  1234. L07FC4:
  1235.     MOVE.L    D4,D0
  1236.     MOVEQ    #-1,D3
  1237.     MOVE.L    A1,-(A7)
  1238.     TRAP    #4
  1239.     TRAP    #3
  1240.     MOVEA.L    (A7)+,A1
  1241.     TST.L    D0
  1242.     RTS
  1243. L07FD4    MOVE.W    0(A6,A1.L),D1
  1244.     SUBQ.L    #2,A1
  1245.     SUBQ.W    #1,D3
  1246.     BEQ.S    L0801A
  1247.     CMPI.W    #$07,D1
  1248.     BHI.S    L08024
  1249.     ORI.W    #$18,D1
  1250.     CMPI.W    #$01,D3
  1251.     BEQ.S    L08004
  1252.     ANDI.W    #$0007,D1
  1253.     MOVE.W    0(A6,A1.L),D2
  1254.     SUBQ.L    #2,A1
  1255.     SUBQ.W    #1,D3
  1256.     LSL.W    #3,D1
  1257.     CMPI.W    #$0007,D2
  1258.     BHI.S    L08024
  1259.     OR.W    D2,D1
  1260. L08004    MOVE.W    0(A6,A1.L),D2
  1261.     SUBQ.L    #2,A1
  1262.     SUBQ.W    #1,D3
  1263.     BNE.S    L08024
  1264.     CMPI.W    #$0007,D2
  1265.     BHI.S    L08024
  1266.     EOR.W    D2,D1
  1267.     LSL.W    #3,D1
  1268.     OR.W    D2,D1
  1269. L0801A    CMPI.W    #$00FF,D1
  1270.     BHI.S    L08024
  1271. L08020    MOVEQ    #0,D0
  1272.     RTS
  1273. L08024    MOVEQ    #-$0F,D0
  1274.     RTS
  1275. L08028    CMPI.W    #$0001,D3
  1276.     BNE.S    L08024
  1277.     MOVE.W    0(A6,A1.L),D1
  1278.     CMP.W    D3,D1
  1279.     BHI.S    L08024
  1280.     BRA.S    L08020
  1281. L08038    JSR    CHNRTOID(PC)    ;*/undomodify BSR CHNRTOID
  1282.     BNE.S    L08052
  1283. SEA_PARA ;search for parameter
  1284.     JSR    CA_GTINT(PC)    ;*/undomodify BSR CA_GTINT
  1285.     BNE.S    L08052
  1286.     ADD.L    D3,D3
  1287.     ADD.L    D3,BV_RIP(A6)    ;arith stack
  1288.     ADDA.L    D3,A1
  1289.     SUBQ.L    #2,A1
  1290.     LSR.W    #1,D3
  1291.     MOVEQ    #0,D0
  1292. L08052    RTS
  1293. BAS_ACOS:
  1294.     LEA    RI_ACOS(PC),A4
  1295.     BRA.S    L080C6
  1296. BAS_ACOT:
  1297.     LEA    RI_ACOT(PC),A4
  1298.     BRA.S    L080C6
  1299. BAS_ASIN:
  1300.     LEA    RI_ASIN(PC),A4
  1301.     BRA.S    L080C6
  1302. BAS_ATAN:
  1303.     LEA    RI_ATAN(PC),A4
  1304.     BRA.S    L080C6
  1305. BAS_COS:
  1306.     LEA    RI_COS(PC),A4
  1307.     BRA.S    L080C6
  1308. BAS_COT:
  1309.     LEA    RI_COT(PC),A4
  1310.     BRA.S    L080C6
  1311. BAS_EXP:
  1312.     LEA    RI_EXP(PC),A4
  1313.     BRA.S    L080C6
  1314. BAS_LN:
  1315.     LEA    RI_LN(PC),A4
  1316.     BRA.S    L080C6
  1317. BAS_LOG10:
  1318.     LEA    RI_LOG10(PC),A4
  1319.     BRA.S    L080C6
  1320. BAS_SIN:
  1321.     LEA    RI_SIN(PC),A4
  1322.     BRA.S    L080C6
  1323. BAS_SQRT:
  1324.     LEA    RI_SQRT(PC),A4
  1325.     BRA.S    L080C6
  1326. BAS_TAN:
  1327.     LEA    RI_TAN(PC),A4
  1328.     BRA.S    L080C6
  1329. BAS_DEG:
  1330.     LEA    RI_DIV(PC),A4
  1331.     BRA.S    L080A6
  1332. BAS_RAD:
  1333.     LEA    RI_MULT(PC),A4
  1334. L080A6    JSR    GET_REAL(PC)    ;*/undomodify BSR GET_REAL
  1335.     BNE.S    L080DE
  1336.     BSR    L08162
  1337.     SUBQ.W    #6,A1
  1338.     MOVE.W    #$07FB,0(A6,A1.L)
  1339.     MOVE.L    #$477D1A89,$02(A6,A1.L)
  1340.     BRA.S    L080D6
  1341. BAS_ABS:
  1342.     LEA    RI_ABS(PC),A4
  1343. L080C6    JSR    GET_REAL(PC)    ;*/undomodify BSR GET_REAL
  1344.     BNE.S    L080DE
  1345.     MOVEQ    #$30,D1
  1346.     JSR    BV_CHRIX(PC)    ;*/undomodify BSR BV_CHRIX
  1347.     MOVEA.L    BV_RIP(A6),A1    ;arith stack
  1348. L080D6    JSR    (A4)
  1349. L080D8    MOVEQ    #$02,D4
  1350. L080DA    MOVE.L    A1,BV_RIP(A6)    ;arith stack
  1351. L080DE    RTS
  1352. L080E0:
  1353.     MOVEQ    #$03,D4
  1354.     MOVEQ    #0,D0
  1355.     BRA.S    L080DA
  1356. L080E6:
  1357.     ADDQ.W    #4,A7        ;*/note never called!!!
  1358.     RTS
  1359. BAS_RND:
  1360.     MOVEQ    #$01,D5
  1361.     OR.L    BV_RAND(A6),D5    ;Random number
  1362.     MOVE.L    D5,D6
  1363.     MULU    #$0163,D5
  1364.     SWAP    D6
  1365.     MULU    #$0163,D6
  1366.     SWAP    D6
  1367.     CLR.W    D6
  1368.     ADD.L    D6,D5
  1369.     MOVE.L    D5,BV_RAND(A6)    ;New random number
  1370.     JSR    CA_GTINT(PC)    ;*/undomodify BSR CA_GTINT
  1371.     BNE.S    L080DE
  1372.     SUBQ.W    #1,D3
  1373.     BEQ.S    L0812A
  1374.     BGT.S    L08124
  1375.     BSR.L    L08162        ;*/undomodify BSR.S L08162
  1376.                 ;*/undomodify nop
  1377.     MOVE.L    D5,D1
  1378.     LSR.L    #1,D1
  1379.     MOVE.W    #$0800,D0
  1380. L0811E    JSR    L04830(PC)    ;*/undomodify BSR L04830
  1381.     BRA.S    L080D8
  1382. L08124    MOVE.W    0(A6,A1.L),D3
  1383.     ADDQ.W    #2,A1
  1384. L0812A    MOVE.W    0(A6,A1.L),D2
  1385.     SUB.W    D3,D2
  1386.     BLT.S    L0819E
  1387.     ADDQ.W    #1,D2
  1388.     SWAP    D5
  1389.     MULU    D2,D5
  1390.     SWAP    D5
  1391.     ADD.W    D3,D5
  1392. L0813C    MOVE.W    D5,0(A6,A1.L)
  1393.     BRA.S    L080E0
  1394. BAS_PI:
  1395.     CMPA.L    A3,A5
  1396.     BNE.S    L0819E
  1397.     BSR.S    L08162
  1398.     MOVE.W    #$0802,D0
  1399.     MOVE.L    #$6487ED51,D1
  1400.     BRA.S    L0811E
  1401. BAS_INT:
  1402.     JSR    GET_INT4(PC)    ;*/undomodify BSR GET_INT4
  1403.     BNE.S    L080DE
  1404.     MOVE.L    0(A6,A1.L),D1
  1405.     ADDQ.W    #4,A1
  1406.     BRA.S    L08186
  1407. L08162    JSR    L04E4C(PC)    ;*/undomodify BSR L04E4C
  1408.     MOVEA.L    BV_RIP(A6),A1    ;arith stack
  1409.     RTS
  1410. BAS_PEEK:
  1411.     BSR.S    L0818C
  1412.     MOVEQ    #0,D5
  1413.     MOVE.B    (A4),D5
  1414.     BRA.S    L0817A
  1415. PEEK_W:
  1416.     BSR.S    L0818C
  1417.     BCS.S    L0819E
  1418.     MOVE.W    (A4),D5
  1419. L0817A    ADDQ.W    #2,A1
  1420.     BRA.S    L0813C
  1421. PEEK_L:
  1422.     BSR.S    L0818C
  1423.     BCS.S    L0819E
  1424.     MOVE.L    (A4),D1
  1425. L08184    ADDQ.W    #4,A1
  1426. L08186    MOVE.W    #$081F,D0
  1427.     BRA.S    L0811E
  1428. L0818C    JSR    GET_INT4(PC)    ;*/undomodify BSR GET_INT4
  1429.     BNE    L0821A
  1430.     MOVEA.L    0(A6,A1.L),A4
  1431.     MOVE.L    A4,D1
  1432.     ROR.W    #1,D1
  1433.     RTS
  1434. L0819E    MOVEQ    #-$0F,D0
  1435. L081A0    RTS
  1436. BAS_RESPr:
  1437.     BSR.S    L0818C
  1438.     MOVEQ    #$0E,D0        ;MT.ALRES allocate resident
  1439.                 ;procedure area
  1440.     MOVE.L    0(A6,A1.L),D1
  1441.     MOVEA.L    A1,A4
  1442.     TRAP    #1
  1443.     MOVE.L    A0,D1
  1444.     MOVEA.L    A4,A1
  1445.     TST.L    D0
  1446.     BEQ.S    L08184
  1447.     BRA.S    L081A0
  1448. L081B8:
  1449. ; --------------------------------------------------------------
  1450. ;*/beginfilling
  1451. ;*/removecode    BEEPING:
  1452. ;*/removecode        CMPA.L    A3,A5
  1453. ;*/removecode        BNE.S    L0819E
  1454. ;*/removecode        BSR.S    L08162
  1455. ;*/removecode        MOVEQ    #1,D1
  1456. ;*/removecode        AND.B    $28096,D1    ;Sound status
  1457. ;*/removecode        BRA.S    L08186
  1458.  
  1459. NOP081C8:
  1460.     DCB.w ($81C8-(NOP081C8-ORGN))/2,$4E71
  1461.  
  1462. ;*/endfilling
  1463. ; --------------------------------------------------------------
  1464. L081C8:
  1465. BAS_EOF:
  1466.     CMPA.L    A3,A5
  1467.     BNE.S    L081D6
  1468.     JSR    L066FA(PC)    ;*/undomodify BSR L066FA
  1469.     SUBQ.B    #1,$97(A6)    ;next DATA item to read
  1470.     BRA.S    L081E0
  1471. L081D6    BSR    L0825A
  1472.     MOVEQ    #0,D0        ;IO.PEND check for pending
  1473.                 ;input
  1474.     MOVEQ    #0,D3
  1475.     TRAP    #3
  1476. L081E0:
  1477.     MOVEQ    #-$0A,D4
  1478.     SUB.L    D0,D4
  1479.     BSR    L08162
  1480.     MOVEQ    #0,D1
  1481.     TST.L    D4
  1482.     BNE.S    L08186
  1483.     MOVEQ    #$01,D1
  1484.     BRA.S    L08186
  1485. BAS_VER:
  1486.     CMPA.L    A3,A5
  1487.     BNE.S    L0819E
  1488.     BSR    L08162
  1489.     SUBQ.W    #4,A1        ;*/modify SUBQ.W #6,A1
  1490.     MOVE.W    #2,0(A6,A1.L)    ;*/modify MOVE.L $BFFA,0( )
  1491.     nop            ;*/modify
  1492.     MOVE.W    #'JS',2(A6,A1.L)    ;*/modify MOVE.W $BFFE,4( )
  1493.     nop            ;*/modify
  1494.     BRA.S    L08252
  1495. BAS_INKEy:
  1496.     BSR.S    L0825A
  1497.     MOVE.L    A0,-(A7)
  1498.     BSR    L08162
  1499.     JSR    CA_GTINT(PC)    ;*/undomodify BSR CA_GTINT
  1500. L0821A:
  1501.     BNE.S    L08262
  1502.     MOVEA.L    (A7)+,A0
  1503.     CMPI.W    #$0001,D3
  1504.     BGT    L0819E
  1505.     BLT.S    L0822E
  1506.     MOVE.W    0(A6,A1.L),D3
  1507.     ADDQ.W    #2,A1
  1508. L0822E    MOVEA.L    A1,A4
  1509.     MOVEQ    #1,D0        ;IO.FBYTE fetch a byte
  1510.     TRAP    #3
  1511.     MOVEA.L    A4,A1
  1512.     ADDQ.L    #1,D0
  1513.     BEQ.S    L0824C
  1514.     SUBQ.L    #1,D0
  1515.     BNE.S    L08264
  1516.     SUBQ.W    #4,A1
  1517. L08240    MOVE.B    D1,2(A6,A1.L)
  1518.     MOVE.W    #1,0(A6,A1.L)
  1519.     BRA.S    L08252
  1520. L0824C    SUBQ.W    #2,A1
  1521.     CLR.W    0(A6,A1.L)
  1522. L08252    MOVEQ    #$01,D4
  1523.     MOVEQ    #0,D0
  1524.     BRA    L080DA
  1525. L0825A    MOVEQ    #0,D1
  1526.     JSR    L065E8(PC)    ;*/undomodify BSR L065E8
  1527.     BEQ.S    L08264
  1528. L08262    ADDQ.W    #4,A7
  1529. L08264    RTS
  1530. BAS_CHR:
  1531.     BSR    L08162
  1532.     JSR    GET_INT2(PC)    ;*/undomodify BSR GET_INT2
  1533.     BNE.S    L08264
  1534.     MOVE.W    0(A6,A1.L),D1
  1535.     SUBQ.W    #2,A1
  1536.     BRA.S    L08240
  1537. FILLstr:
  1538.     SUBQ.W    #8,A5
  1539.     BSR.S    L082CE
  1540.     BEQ    L0819E
  1541.     SUBQ.L    #1,D1
  1542.     BGT.S    L0828A
  1543.     MOVE.B    $02(A6,A1.L),$03(A6,A1.L)
  1544. L0828A    MOVE.W    $02(A6,A1.L),D5
  1545.     ADDQ.L    #4,D1
  1546.     BCLR    #0,D1
  1547.     ADDA.L    D1,A1
  1548.     MOVE.L    A1,BV_RIP(A6)    ;arith stack
  1549.     MOVEA.L    A5,A3
  1550.     ADDQ.W    #8,A5
  1551.     JSR    GET_INT2(PC)    ;*/undomodify BSR GET_INT2
  1552.     BNE.S    L08264
  1553.     ADDQ.L    #2,BV_RIP(A6)    ;arith stack
  1554.     MOVEQ    #0,D4
  1555.     MOVE.W    0(A6,A1.L),D4
  1556.     BLT    L0819E
  1557.     BEQ.S    L08252
  1558.     MOVE.L    D4,D1
  1559.     BSR.S    L082F2
  1560. L082B8    SUBQ.W    #2,A1
  1561.     MOVE.W    D5,0(A6,A1.L)
  1562.     SUBQ.L    #2,D1
  1563.     BGT.S    L082B8
  1564.     MOVE.W    D4,0(A6,A1.L)
  1565.     BRA.S    L08252
  1566. BAS_LEN:
  1567.     BSR.S    L082CE
  1568.     MOVE.W    D1,D5
  1569.     BRA.S    L082E6
  1570. L082CE    JSR    GET_STR(PC)    ;*/undomodify BSR GET_STR
  1571.     BNE.S    L08262
  1572.     MOVEQ    #0,D5
  1573.     MOVEQ    #0,D1
  1574.     MOVE.W    0(A6,A1.L),D1
  1575.     RTS
  1576. BAS_CODE:
  1577.     BSR.S    L082CE
  1578.     BEQ.S    L082EE
  1579.     MOVE.B    $02(A6,A1.L),D5
  1580. L082E6    ADDQ.L    #1,D1
  1581.     BCLR    #0,D1
  1582.     ADDA.L    D1,A1
  1583. L082EE    BRA    L0813C
  1584. L082F2    ADDQ.L    #3,D1
  1585.     BCLR    #0,D1
  1586.     MOVE.L    D1,-(A7)
  1587.     JSR    BV_CHRIX(PC)    ;*/undomodify BSR BV_CHRIX
  1588.     MOVEA.L    BV_RIP(A6),A1    ;arith stack
  1589.     MOVE.L    (A7)+,D1
  1590. L08304    RTS
  1591. BAS_DIMN:
  1592.     MOVE.B    0(A6,A3.L),D1
  1593.     SUBQ.B    #3,D1
  1594.     BNE.S    L0834E
  1595.     MOVE.L    A3,-(A7)
  1596.     ADDQ.W    #8,A3
  1597.     JSR    CA_GTINT(PC)    ;*/undomodify BSR CA_GTINT
  1598.     MOVEA.L    (A7)+,A3
  1599.     BNE.S    L08304
  1600.     SUBQ.W    #1,D3
  1601.     BGT.S    L08304
  1602.     BEQ.S    L08328
  1603.     BSR.S    L0836A
  1604.     SUBQ.W    #2,A1
  1605.     MOVEQ    #$01,D1
  1606.     BRA.S    L0832E
  1607. L08328    MOVE.W    0(A6,A1.L),D1
  1608.     BLE.S    L08352
  1609. L0832E    MOVEA.L    $04(A6,A3.L),A2
  1610.     ADDA.L    BV_VVBAS(A6),A2    ;variable values
  1611.     MOVE.W    $04(A6,A2.L),D2
  1612.     SUB.W    D1,D2
  1613.     BLT.S    L08352
  1614.     ADDQ.W    #2,A2
  1615.     LSL.W    #2,D1
  1616.     ADDA.W    D1,A2
  1617.     MOVE.W    0(A6,A2.L),0(A6,A1.L)
  1618.     BRA    L080E0
  1619. L0834E    BSR.S    L0836A
  1620.     SUBQ.W    #2,A1
  1621. L08352    MOVEQ    #0,D5
  1622.     BRA.S    L082EE
  1623. BAS_IDATe:
  1624.     CMPA.L    A3,A5
  1625.     BNE    L0819E
  1626.     BSR.S    L0836A
  1627.     MOVEQ    #$13,D0        ;MT.RCLCK reads the clock
  1628.     TRAP    #1
  1629.     BCLR    #$1F,D1
  1630.     BRA    L08186
  1631. L0836A    BRA    L08162
  1632. L0836E:
  1633. ; --------------------------------------------------------------
  1634. ;*/beginoverlay
  1635. BAS_KEYRow:
  1636.     JSR    GET_INT2(PC)    ;*/undomodify BSR GET_INT2
  1637.     SUBQ.W    #8,A7
  1638.     BNE.S    L083B0
  1639.     MOVEA.L    A7,A3
  1640.     MOVE.B    #9,(A3)        ;IPC read keyboard row
  1641.     MOVE.B    #1,1(A3)     ;one parameter
  1642.     clr.l    2(a3)        ;*/modify MOVE.L #0,2(A3)
  1643.     MOVE.B    1(A6,A1.L),6(A3)    ;row number
  1644.     MOVE.B    #2,7(A3)
  1645.     MOVE.L    A1,-(A7)
  1646.     MOVEQ    #$11,D0        ;MT.IPCOM sends a command
  1647.                 ;(A3) to IPC
  1648.     TRAP    #1
  1649.     MOVEA.L    (A7)+,A1
  1650.     MOVE.W    D1,0(A6,A1.L)
  1651.     MOVEQ    #$03,D4
  1652.     moveq    #MT.INF,d0    ;*/modify
  1653.     trap    #1        ;*/modify
  1654.     move.l    SV_KEYQ(a0),a2    ;*/modify MOVEA.L  $0002804C,A2
  1655.     MOVE.L    Q_NXTOUT(A2),Q_NEXTIN(A2)
  1656. L083B0    ADDQ.W    #8,A7
  1657.     RTS
  1658.  
  1659. NOP083B4:
  1660.     DCB.w ($83B4-(NOP083B4-ORGN))/2,$4E71
  1661.  
  1662. ;*/endoverlay
  1663. ; --------------------------------------------------------------
  1664. L083B4:
  1665. BAS_DATE:
  1666.     LEA    CN_DATE(PC),A4
  1667.     BRA.S    L083BE
  1668. BAS_DAY:
  1669.     LEA    CN_DAY(PC),A4
  1670. L083BE    JSR    L04E4C(PC)    ;*/undomodify BSR L04E4C
  1671.     CMPA.L    A3,A5
  1672.     BLE.S    L083D4
  1673.     JSR    GET_INT4(PC)    ;*/undomodify BSR GET_INT4
  1674.     BNE.S    L083E6
  1675.     MOVE.L    0(A6,A1.L),D1
  1676.     ADDQ.L    #4,A1
  1677.     BRA.S    L083DC
  1678. L083D4    MOVEQ    #$13,D0        ;MT.RCLCK reads the clock
  1679.                 ;-> D1
  1680.     TRAP    #1
  1681.     MOVEA.L    BV_RIP(A6),A1    ;arith stack
  1682. L083DC    JSR    (A4)
  1683.     MOVEQ    #1,D4
  1684.     MOVE.L    A1,BV_RIP(A6)    ;arith stack
  1685.     MOVEQ    #0,D0
  1686. L083E6    RTS
  1687. ERR_BL    BSR.S    L08414
  1688. ERR_RO    BSR.S    L08414
  1689. ERR_NI    BSR.S    L08414
  1690. ERR_OV    BSR.S    L08414
  1691. ERR_XP    BSR.S    L08414
  1692. ERR_FE    BSR.S    L08414
  1693. ERR_BP    BSR.S    L08414
  1694. ERR_FF    BSR.S    L08414
  1695. ERR_TE    BSR.S    L08414
  1696. ERR_BN    BSR.S    L08414
  1697. ERR_DF    BSR.S    L08414        ;*/mend BRA.S $8414
  1698. ERR_EF    BSR.S    L08414
  1699. ERR_IU    BSR.S    L08414
  1700. ERR_EX    BSR.S    L08414
  1701. ERR_NF    BSR.S    L08414
  1702. ERR_NO    BSR.S    L08414
  1703. ERR_BO    BSR.S    L08414
  1704. ERR_OR    BSR.S    L08414
  1705. ERR_OM    BSR.S    L08414
  1706. ERR_NJ    BSR.S    L08414
  1707. ERR_NC    BSR.S    L08414
  1708.     NOP
  1709. L08414:
  1710.     PEA    L08414(PC)
  1711.     MOVE.L    (A7)+,D4
  1712.     SUB.L    (A7)+,D4
  1713.     LSR.L    #1,D4
  1714.     BSR.S    L08446
  1715.     SUBQ.W    #6,A1
  1716.     CLR.W    0(A6,A1.L)
  1717.     CLR.L    2(A6,A1.L)
  1718.     ADD.L    $C2(A6),D4    ;
  1719.     BNE.S    L0843C
  1720.     MOVE.W    #$0801,0(A6,A1.L)
  1721.     MOVE.B    #$40,2(A6,A1.L)
  1722. L0843C    MOVEQ    #2,D4
  1723. L0843E    MOVE.L    A1,BV_RIP(A6)    ;arith stack
  1724.     MOVEQ    #0,D0
  1725.     RTS
  1726. L08446    CMPA.L    A3,A5
  1727.     BNE.S    L08454
  1728.     JSR    L04E4C(PC)    ;*/undomodify BSR L04E4C
  1729.     MOVEA.L    BV_RIP(A6),A1    ;arith stack
  1730.     RTS
  1731. L08454    ADDQ.W    #4,A7
  1732.     MOVEQ    #-15,D0
  1733.     RTS
  1734. BAS_ERNUm:
  1735.     BSR.S    L08446
  1736.     SUBQ.W    #2,A1
  1737.     MOVE.W    $C4(A6),0(A6,A1.L) ;
  1738. L08464    MOVEQ    #3,D4
  1739.     BRA.S    L0843E
  1740. BAS_ERLIn:
  1741.     BSR.S    L08446
  1742.     SUBQ.W    #2,A1
  1743.     MOVE.W    $C6(A6),0(A6,A1.L) ;
  1744.     BRA.S    L08464
  1745. ; --------------------------------------------------------------
  1746. ;*/endfile
  1747.